Traditionally, data replication includes replicating data from a first server to a second server. The data replication allows the second server to function as a backup of the first server in the event of a failure of the first server.
One technique conventionally utilized for replicating data from the first server to the second server is synchronous replication. As an example, the first server utilizing the synchronous replication replicates the data associated with a transaction received from a client to the second server. Further, the first server then receives a result back from the second server prior to returning the result to the client. As a result of the synchronous replication, each transaction is slowed since the data associated with the transaction must first be replicated to the second server and a result of the replication must then be returned to the first server prior to sending the result back to the client.
Another technique conventionally utilized for replicating data from the first server to the second server is asynchronous replication. For example, the first server utilizing the asynchronous replication replicates the data associated with a transaction received from a client to the second server in batches after the result of the transaction is returned to the client. However, as a result of the asynchronous replication, the second server may not include an up to date copy of the first server in the event of a sudden failure of the first server prior to a replication batch.
There is thus a need for addressing these and/or other issues associated with the prior art.